﻿using System;
using System.Diagnostics.Contracts;

namespace OpenWaves.ImageTransformations.Web
{
    [ContractClass(typeof(VirtualFileProviderContract))]
    public interface IVirtualFileProvider
    {
        IVirtualFile GetFile(Url fileUrl);        
    }

    [ContractClassFor(typeof(IVirtualFileProvider))]
    abstract class VirtualFileProviderContract : IVirtualFileProvider
    {
        public IVirtualFile GetFile(Url fileUrl)
        {
            Contract.Requires<ArgumentNullException>(fileUrl != null);

            throw new NotImplementedException();
        }
    }
}